#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Math;
namespace Cephei.QL.Math.Matrixutilities
{
     // <summary> 
	// ! References:  Wilkinson, J.H. and Reinsch, C. 1971, Linear Algebra, vol. II of Handbook for Automatic Computation (New York: Springer-Verlag)  "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery,  \test the correctness of the result is tested by checking it against known good values.
	// </summary>
    [Guid ("12A0E3FC-9E52-41e3-AB1A-21F7186726B4"),ComVisible(true)]
	public interface ITqrEigenDecomposition 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 Cephei.QL.Math.IArray Eigenvalues {get;}
        
		 Cephei.QL.Math.IMatrix Eigenvectors {get;}
        
		 UInt64 Iterations {get;}
    }

    // <summary> 
	// ! References:  Wilkinson, J.H. and Reinsch, C. 1971, Linear Algebra, vol. II of Handbook for Automatic Computation (New York: Springer-Verlag)  "Numerical Recipes in C", 2nd edition, Press, Teukolsky, Vetterling, Flannery,  \test the correctness of the result is tested by checking it against known good values. Factory
	// </summary>
   	[ComVisible(true)]
    public interface ITqrEigenDecomposition_Factory // : Collection_Factory<ITqrEigenDecomposition, ICell<ITqrEigenDecomposition>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    ITqrEigenDecomposition Create (Cephei.QL.Math.IArray diag, Cephei.QL.Math.IArray sub, Microsoft.FSharp.Core.FSharpOption<QL.Math.Matrixutilities.TqrEigenDecomposition.EigenVectorCalculationEnum> calc, Microsoft.FSharp.Core.FSharpOption<QL.Math.Matrixutilities.TqrEigenDecomposition.ShiftStrategyEnum> strategy);
    }
}

